package com.aaa.vegetablemarketexpress.dao;

import com.aaa.vegetablemarketexpress.entity.Category;
import com.aaa.vegetablemarketexpress.util.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @FileName: CategoryDao
 * @Description:
 * @Author: 张钰哲
 * @CreateTime: 2025/9/6 11:46
 * @Version: 1.0.0
 */

public interface CategoryDao {
    /**
     * 分页查询分类列表
     */
    List<Category> queryByParam(Category category);

    /**
     * 查询分类树结构
     */
    List<Category> queryCategoryTree();

    /**
     * 根据ID查询分类
     */
    Category queryByCategoryId(Long categoryId);

    /**
     * 添加分类
     */
    int add(Category category);

    /**
     * 修改分类
     */
    int update(Category category);

    /**
     * 删除分类
     */
    int deleteByCategoryId(Long categoryId);

    /**
     * 查询子分类数量
     */
    int queryChildCount(Long categoryId);

    /**
     * 检查分类编码是否唯一
     */
    int checkCategoryCodeUnique(String categoryCode);

    /**
     * 检查分类编码是否唯一（排除当前ID）
     */
    int checkCategoryCodeUniqueExcludeId(@Param("categoryCode") String categoryCode, @Param("categoryId") Long categoryId);
}
